/**
 * This file is part of Adaptools.
 * 
 * Adaptools is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Adaptools is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 * along with Adaptools.  If not, see http://www.gnu.org/licenses/. 
 */
package org.adaptools.base;


/**
 * This Enum has all reserved words in the adaptools language 
 * 
 * @author Denys G. Santos (gsdenys@gmail.com)
 * @since 3.0.0
 */
public enum ReservedWords {

	/**
	 *  Represents the empty transitions. It is used in the input column
	 */
	EMPTY_TRANSITION("eps"),
	
	/**
	 * Invalidate the column where present in the columns <b>push</b>,
	 * <b>output</b> and <b>adaptive</b>.
	 */
	COLUMN_NOT_OPERATE("nop"),
	
	/**
	 * When in the Push column indicate that the target state is a final state.
	 */
	FINAL_STATE("fin"),
	
	/**
	 * When in the Target column indicate that the target state is a sub-machine 
	 * return
	 */
	SUB_MACHINE_RETURN("pop"),
	
	/**
	 * Represents the ASCII Blank space.
	 */
	BLANK_SPACE_ASCII("spc"),
	
	/**
	 * Represents the interval [0..9]
	 */
	DIGIT("digit"),
	
	/**
	 * Represents the interval [a..z] or [A..Z]
	 */
	LETTER("letter"),
	
	/**
	 * Represents all symbols different of <b>letter</b>, <b>spc</b> and <b>digit</b>
	 */
	SPECIAL("special"),
	
	/**
	 * Represents all symbols that not be consumed in the state
	 */
	OTHER("other");
	
	
	/**
	 * Label of Reserved Words 
	 */
	private final String label;
	
	/**
	 * Builder 
	 * @param label
	 */
	ReservedWords(String label) {
		this.label = label;
	}

	/**
	 * @return the label
	 */
	public String getLabel() {
		return label;
	}
		
}